package com.sky.pay.service;

import com.sky.pay.api.request.WeixinPayOrderRequest;
import com.sky.pay.vo.Order;

import java.util.List;

/**
 * @author yangsk
 */
public interface OrderService {

    /**
     * 查询客户订单在商户服务中是否存在
     * @param request
     * @return
     */
    public Order getExistOrder(WeixinPayOrderRequest request);

    /**
     * 商户生成客户订单
     * @param request
     */
    Order createOrder(WeixinPayOrderRequest request);

    /**
     * 统一支付订单下单成功后，将付款二维码保存到用户订单
     * @param orderNo
     * @param code_url
     */
    void saveOrderPayCodeUrl(String orderNo,String code_url);

    /**
     * 微信支付回调通知成功后，更新用户订单的订单状态
     * @param outTradeNo
     */
    void updateOrderStatus(String outTradeNo,String orderStatus);

    /**
     * 获取订单状态
     * @param orderNo
     * @return
     */
    Order getOrderStatus(String orderNo);

    /**
     * 查询超过5分钟未支付的订单
     * @param i
     * @return
     */
    List<Order> getNoPayOrderByDuration(int i);
}
